//
//  RLLocationHelper.h
//
// Created by jun on 14-3-18.
// Copyright (c) 2014年. All rights reserved.
//

//#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>
#import <MapKit/MapKit.h>
/**
 * WGS84坐标系：即地球坐标系，国际上通用的坐标系。
 * GCJ02坐标系：即火星坐标系，WGS84坐标系经加密后的坐标系。
 * BD09坐标系：即百度坐标系，GCJ02坐标系经加密后的坐标系。
 * 搜狗坐标系、图吧坐标系等，估计也是在GCJ02基础上加密而成的。
 *
 * 各个地图API采用的坐标系:
 * API 	坐标系
 * 百度地图API 	百度坐标
 * 腾讯搜搜地图API 	火星坐标
 * 搜狐搜狗地图API 	搜狗坐标
 * 阿里云地图API 	火星坐标
 * 图吧MapBar地图API 	图吧坐标
 * 高德MapABC地图API 	火星坐标
 * 灵图51ditu地图API 	火星坐标
 */

@interface RLMapHelper : NSObject

/// 单例实例
+ (RLMapHelper *)sharedInstance;

/// 是否使用高德地图数据源
@property (nonatomic, assign, readonly) BOOL isUseAMap;

/// 开始定位并获得位置相关信息(如国家，为RLMapHelper里的坐标是否纠偏提供判断)
- (void)startLocationAndGetPlaceInfo;
- (void)startIPGetPlaceInfo;

/// 地球坐标系(真实GPS坐标)转火星坐标（高德坐标）
+ (CLLocationCoordinate2D)wgs84ToGcj02:(CLLocationCoordinate2D)wgs84Coor;
/// 火星坐标转地球坐标系
+ (CLLocationCoordinate2D)gcj02ToWgs84:(CLLocationCoordinate2D)gcj02Coor;

/**
 * 使用抽稀算法(垂距限值法)将路线的点稀释
 *
 * @param oldPointArray 旧的点坐标数组，数组里放NSValue，NSValue放CLLocationCoordinate2D
 */
+ (NSArray<NSValue*>*)vacuateMapRoutePoint:(NSArray<NSValue*>*)oldPointArray;

@end


@interface MKMapView (CLExtension)

/// 一屏幕显示完所有的annotation
- (void)zoomMapViewToFitAnnotationsAnimated:(BOOL)animated;

/// 一屏幕显示完所有的Overylay
- (void)zoomMapViewToFitOverlaysAnimated:(BOOL)animated;

@end

